<?php

/**
 * Dat@ctiv Framework
 *
 * @author		Mathieu Rey
 * @copyright	Copyright (c) 2008, datactiv.fr
 * @link		http://www.datactiv.fr/framework/
 * @license		http://www.datactiv.fr/framework/licence/
 */

/**
 * Common
 *
 * Fonctions de base du framework
 *
 * @author		Mathieu Rey
 */

/**
 *                     TODO
 *
 * - cleaner en enlevant les trucs en HTML
 */



/**
 * load
 * 
 * Charge la classe demandée, ou renvoie le pointeur vers l'instance si elle a déjà été chargée
 */
function &load($class){

	static $objects = array();

	$class = ucfirst(strtolower($class));

	// Classe déjà instanciée, c'est fini
	if (isset($objects[$class])){

		/*echo '<div style="border: solid 1px;">Classe <b>'.$class.'</b> : deja chargée<br />Classes chargées : ';
		foreach ($objects as $k => $v) echo $k.", ";
		echo '</div>';*/

		return $objects[$class];
	}

	// Sinon on inclut le fichier de la classe et l'on l'instancie
	require($class.".php");		
	$objects[$class] = new $class();

	/*echo '<div style="border: solid 1px;"><u>Datactiv</u><br />Classe <b>'.$class.'</b> : chargement effectué<br />Classes chargées : ';
	foreach ($objects as $k => $v) echo $k.", ";
	echo '</div>';*/

	return $objects[$class];

}


/**
 * afficher
 * 
 * Donne la main à la vue, et lui donne un objet en paramètre
 */
function afficher($view, $o = ""){

	GLOBAL $PATHBASE, $URLBASE;

	if (!file_exists($PATHBASE."views/".$view.".php"))
			die("erreur vue");//throw_new_Erreur("Vue", "Le fichier vue '".$view."' n'existe pas sur le serveur");

	// On inclut le fichier
	ob_start();
	include($PATHBASE."views/".$view.".php");
	$buffer = ob_get_contents();
	ob_end_clean();

	echo $buffer;

}

function head($titre = "", $header = ""){
	GLOBAL $PATHBASE, $URLBASE;
	include($PATHBASE."views/_entetes_/header.php");
}

function foot(){
	GLOBAL $PATHBASE, $URLBASE;
	include($PATHBASE."views/_entetes_/footer.php");
}


/**
 * modele
 * 
 * Charge un modèle
 */
function modele($modele){

	GLOBAL $PATHBASE;

	if (!file_exists($PATHBASE."models/".$modele.".php"))
		die("erreru modele");
		//throw_new_Erreur("Modèle", "Le fichier modèle '".$modele."' n'existe pas sur le serveur");

	include($PATHBASE."models/".$modele.".php");

}




function erreur($niv, $cat, $mes){

	if ($niv != "error")
		echo '<div style="text-align: center; width: 100%;"><div style="background-color: red; width: 400px; padding: 15px; margin: 15px; "><b>'.$niv."</b> -  ".$cat."<br /><i>".$mes.'</i></div></div>';
	else
		die('<div style="text-align: center; width: 100%;"><div style="background-color: red; width: 400px; padding: 15px; margin: 15px;"><b>'.$niv."</b> -  ".$cat."<br /><i>".$mes.'</i></div></div>');

}

function ecrireFichier($type,$id,$val){
	GLOBAL $LATEXBASE;
	$f = fopen($LATEXBASE.$type."/".$id.".tex", "w+") or erreur("error", "Fichiers", "Impossible de créer le fichier");
	fwrite($f, unparsechars($val));
	fclose($f);
}


function lireFichier($type,$id){
	GLOBAL $LATEXBASE;
	$filename = $LATEXBASE.$type."/".$id.".tex";
	$f = fopen($filename, "r+");
	if (!$f)
		return "";
	$contents = fread($f, filesize ($filename));
	fclose($f);
	return parsechars($contents);
}

function supprimerFichier($type,$id){
	GLOBAL $LATEXBASE;
	
	$fichier = $LATEXBASE.$type."/".$id.".tex";
	
	if (!file_exists($fichier) || !is_file($fichier)){
		erreur("warning", "Fichiers", "Impossible de supprimer le fichier (fichier inexistant)");
		return;
	}
	
	@unlink($fichier) or erreur("error", "Fichiers", "Impossible de supprimer le fichier '".$type."/".$id."' !");
	
}

function formaterdate($ts){
	date_default_timezone_set("Europe/Paris");
	return date("d/m/Y H:i", $ts);
}

function donothing($id)
{
return($id);
}



?>